package niit.game;

import java.lang.Thread.State;

import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.os.Vibrator;
import android.view.Display;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;
import android.widget.ImageButton;

public class Main extends Activity {
	public static GameView game;
    public static boolean finish=true;
    public static int SCREENWIDTH;
    public static int SCREENHEIGHT;
    public static Context mcontext;
    public static SpriteThread spriteThread;
    /////////
    WakeLock wakeLock;
    public static  Vibrator v;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Display display = ((WindowManager)getBaseContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
        SCREENWIDTH  = display.getWidth();
        SCREENHEIGHT = display.getHeight();
        
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        mcontext=this;
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
        
        v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
        game= new GameView(this); 
        
       
      
        finish=true;
        spriteThread=new SpriteThread(game);
        spriteThread.start();
        setContentView(game);  
       
//        PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
//        wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "GLGame");
    }   
//    @Override
//    protected Dialog onCreateDialog(int id) {
//    	final Dialog dialog = new Dialog(this);
//        if(id==0){
//    	dialog.setContentView(R.layout.dialogback);
//        dialog.getWindow().setLayout(SCREENWIDTH, SCREENHEIGHT);
//        LayoutParams lp = dialog.getWindow().getAttributes();
//        lp.alpha=0.5f;
//        dialog.getWindow().setAttributes(lp);
//        
//        ImageButton  Mainmenu =(ImageButton )dialog.findViewById(R.id.MainMenu);
//        Mainmenu.setOnClickListener(new OnClickListener() {			
//			public void onClick(View v) {
//				 dialog.dismiss();
//				 finish();
//			}
//		});
//        
//        ImageButton  Resume =(ImageButton ) dialog.findViewById(R.id.Resume);        
//        Resume.setOnClickListener(new OnClickListener() {
//			
//			public void onClick(View v) {				
//					onResume();
//					finish = true;
//			        spriteThread = new SpriteThread(game);				       
//			        spriteThread.start();
//			        dialog.dismiss();
//			}
//		});
//    		}
//    	else if(id==1){
//  
//	    dialog.setContentView(R.layout.dialogback);
//        dialog.getWindow().setLayout(SCREENWIDTH, SCREENHEIGHT);
//        LayoutParams lp = dialog.getWindow().getAttributes();
//        lp.alpha=0.5f;
//        dialog.getWindow().setAttributes(lp);
//        
//        ImageButton  Mainmenu =(ImageButton )dialog.findViewById(R.id.MainMenu);
//        Mainmenu.setOnClickListener(new OnClickListener() {			
//			public void onClick(View v) {
//				finish = true;	
//		        MyPlane.health=500;
//		        MyPlane.CurrentRockKet=10;
//		        spriteThread = new SpriteThread(game);		  
//		        spriteThread.start();
//				dialog.dismiss();
//			}
//		});
//        
//        ImageButton  Resume =(ImageButton ) dialog.findViewById(R.id.Resume);        
//        Resume.setOnClickListener(new OnClickListener() {
//			
//			public void onClick(View v) {				
//					onResume();
//					finish = true;
////			        thread2 = new Fire_thread(game);	
//			        MyPlane.health=500;
//			        MyPlane.CurrentRockKet=10;
////			        thread2.start();
//			        spriteThread = new SpriteThread(game);		
//				       
//			        spriteThread.start();
//			        dialog.dismiss();
//			}
//		});
//
//    	}
//        
//        return dialog;
//        
//    }
    
//    
//    @Override
//    public boolean onKeyDown(int keyCode, KeyEvent event) {
//		if (keyCode == KeyEvent.KEYCODE_BACK) {
//    		game.pause();
//    		finish=false;
//    		showDialog(0);
//    	    return true; 
//        }
//        return super.onKeyDown(keyCode, event);
//    }  
//   
// 
//    @Override
//    protected void onStart() {    	
//        super.onStart();
//    }
//    
//    @Override
//	protected void onResume() {	   
//    	game.resume();
//		super.onResume();
//		wakeLock.acquire();
//		
//		finish = true;
//		if(spriteThread.getState() == Thread.State.TERMINATED || spriteThread.getState() == Thread.State.BLOCKED){
//			spriteThread = new SpriteThread(game);
//	        spriteThread.start();
//		}
//	}
//
//	@Override
//	protected void onPause() {	
//		GameLoopThread.running= false;
//		game.pause();
//		super.onPause();
//		 wakeLock.release();
//		//////////////
//		finish = false;
//		   boolean retry = true;
//			while (retry) {
//			     try {
//			          spriteThread.join();
//			      retry = false;
//			         } 
//			     catch (InterruptedException e) {	
//			     			}
//						}		
//		
//	}
//	
//	 @Override
//	    protected void onStop() {
//		 game.pause();	 
//		 super.onStop();
//		 boolean retry = true;
//		 while (retry) {
//		     try {
//		          spriteThread.join();
//		      retry = false;
//		         } 
//		     catch (InterruptedException e) {	
//		     			}
//					}	
//	     }
//	
//	@Override
//	protected void onDestroy() {
//		super.onDestroy();
//		finish = false;
//	    GameLoopThread.running= false;
//	    boolean retry = true;
//		while (retry) {
//		     try {
//		    	 if(spriteThread.getState()==State.BLOCKED)
//		    		 spriteThread.join();
//		     retry = false;
//		         } 
//		     catch (InterruptedException e) {	
//		     			}
//					}	
//		
// 
//	}
//	
//	@Override
//	protected void onSaveInstanceState(Bundle outState) {
//		super.onSaveInstanceState(outState);
//	}
//	

}